package net.lab1024.sa.admin.module.business.datasource.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.lab1024.sa.admin.module.business.datasource.domain.form.DatasourceForm;
import net.lab1024.sa.admin.module.business.datasource.domain.vo.DatasourceVO;
import net.lab1024.sa.base.common.domain.ResponseDTO;

/**
 * 数据源Service
 *
 * @Author 1024创新实验室-主任:卓大
 * @Date 2024-01-01 00:00:00
 * @Wechat zhuoda1024
 * @Email lab1024@163.com
 * @Copyright <a href="https://1024lab.net">1024创新实验室</a>
 */
public interface DatasourceService {

    /**
     * 分页查询数据源列表
     *
     * @param page 分页参数
     * @param name 数据源名称
     * @param type 数据库类型
     * @param status 状态
     * @return 数据源列表
     */
    ResponseDTO<Page<DatasourceVO>> queryPage(Page<DatasourceVO> page, String name, String type, Integer status);

    /**
     * 根据ID查询数据源详情
     *
     * @param id 数据源ID
     * @return 数据源详情
     */
    ResponseDTO<DatasourceVO> getDetailById(Long id);

    /**
     * 新增数据源
     *
     * @param form 数据源表单
     * @return 操作结果
     */
    ResponseDTO<String> create(DatasourceForm form);

    /**
     * 更新数据源
     *
     * @param form 数据源表单
     * @return 操作结果
     */
    ResponseDTO<String> update(DatasourceForm form);

    /**
     * 删除数据源
     *
     * @param id 数据源ID
     * @return 操作结果
     */
    ResponseDTO<String> delete(Long id);

    /**
     * 测试数据源连接
     *
     * @param form 数据源表单
     * @return 测试结果
     */
    ResponseDTO<String> testConnection(DatasourceForm form);
} 